; º º ; º _\\|//_ º ; º (` o-o ') º ; º------ooO-(_)-Ooo----------------------------------------------------º ; º º ; º www.todopic.com.ar º ; º .oooO Oooo. º ; º ( ) ( ) obtenga su email gratis º ; º_____\ (_______) /___________________________________________________º ; º \_) (_/ º ; ; ; ; ; RAM Page 0 Registers ; INDF EQU 0x0000 TMR0 EQU 0x0001 PCL EQU 0x0002 STATUS EQU 0x0003 FSR EQU 0x0004 PORTA EQU 0x0005 PORTB EQU 0x0006 EEDATA EQU 0x0008 EEADR EQU 0x0009 PCLATH EQU 0x000A INTCON EQU 0x000B ; ; RAM Page 1 Registers ; OPTION_REG EQU 0x0081 TRISA EQU 0x0085 TRISB EQU 0x0086 EECON1 EQU 0x0088 EECON2 EQU 0x0089 ; ; STATUS bits ; C EQU 00h DC EQU 01h Z EQU 02h PD EQU 03h TO EQU 04h RP0 EQU 05h RP1 EQU 06h IRP EQU 07h ; ; INTCON bits ; RBIF EQU 00h INTF EQU 01h T0IF EQU 02h RBIE EQU 03h INTE EQU 04h T0IE EQU 05h EEIE EQU 06h GIE EQU 07h ; ; OPTION_REG bits ; PS0 EQU 00h PS1 EQU 01h PS2 EQU 02h PSA EQU 03h T0SE EQU 04h T0CS EQU 05h INTEDG EQU 06h RBPU EQU 07h ; ; EECON1 bits ; RD EQU 00h WR EQU 01h WREN EQU 02h WRERR EQU 03h EEIF EQU 04h ;************************************************** ;*** MACRO: Sound, para hacer un sonido *********** ;************************************************** ;********************************************************** ;*** Macro Sonido: ;*** Reproduce un sonido por el puerto, pin especificado ;*** y con la nota y duracion especificada ;*** Usa 4 variables, las cuales son mapeadas en la ram + dos pocisiones ;*** Las cuales son: ;*** Puerto = 22h, Pin = 20h, Nota = 0Eh, Duracion = 0F, 0Dh y 0Ch ;*** Estas variables son necesarias para reproducir el sonido ;*** En cuanto al los pines, hay que nombrarlo del 1 al 8 por el hecho ;*** de que trabaja con un comf........... ;*** Las notas son de 0 a 80 y del 80 al FF es NOISE o RUIDO ;*** Y a duracion se especifica en milisegundos ;************************************************** ;************** REGISTROS************************** Puerto equ 22h Pin equ 20h Nota equ 0Eh Duracion equ 0Fh ;*************** MACRO **************************** Sound macro local Etiqueta1 local Etiqueta2 local Etiqueta3 local Etiqueta4 local Etiqueta5 local Etiqueta6 local Etiqueta7 local Etiqueta8 local Etiqueta9 local Etiqueta10 local Etiqueta11 local Etiqueta12 local Etiqueta13 local Etiqueta14 local Etiqueta15 goto Etiqueta1 Etiqueta2: MOVWF Duracion MOVF Puerto,w MOVWF FSR COMF Pin,w CALL Etiqueta7 ; BCF FSR,7 MOVF Duracion,f BTFSC STATUS,Z GOTO Etiqueta15 ; MOVLW 0xF0 MOVWF 0x11 Etiqueta3 MOVF Nota,w IORLW 0x80 MOVWF 0x10 Etiqueta4 MOVLW 0xF0 DECF 0x11,f BTFSC STATUS,Z MOVWF 0x11 BTFSC STATUS,Z DECF Duracion,f BTFSC STATUS,Z GOTO Etiqueta15 ; MOVF 0x0C,w MOVWF 0x12 MOVF 0x0D,w MOVWF 0x13 MOVLW 0x1C CALL Etiqueta9 ; MOVF 0x12,w MOVWF 0x0C MOVF 0x13,w MOVWF 0x0D CALL Etiqueta8 ; CLRW BTFSC 0x0C,0 MOVF Pin,w BTFSS Nota,7 MOVF Pin,w MOVF Nota,f BTFSC STATUS,Z CLRW INCFSZ 0x10,f GOTO Etiqueta5 ; XORWF INDF,f GOTO Etiqueta3 ; Etiqueta5 GOTO Etiqueta6 ; Etiqueta6 NOP GOTO Etiqueta4 ; Etiqueta7 BSF FSR,7 ANDWF INDF,f GOTO Etiqueta15 ; Etiqueta8 MOVF 0x0D,w IORWF 0x0C,w BTFSC STATUS,Z INCF 0x0C,f MOVLW 0x80 BTFSC 0x0C,4 XORWF 0x0D,f BTFSC 0x0C,2 XORWF 0x0D,f BTFSC 0x0C,1 XORWF 0x0D,f RLF 0x0D,w RLF 0x0C,f RLF 0x0D,f GOTO Etiqueta15 ; Etiqueta9 CLRF 0x0D ADDLW 0xF6 MOVWF 0x0C COMF 0x0D,f BTFSS STATUS,C GOTO Etiqueta12 ; Etiqueta10 MOVLW 0xFE Etiqueta11 NOP ADDWF 0x0C,f BTFSC STATUS,C GOTO Etiqueta11 ; ADDWF 0x0C,f Etiqueta12 CLRWDT INCFSZ 0x0D,f GOTO Etiqueta10 ; NOP BTFSC 0x0C,0 GOTO Etiqueta13 ; Etiqueta13 BTFSC 0x0C,0 GOTO Etiqueta14 ; Etiqueta14 RETURN ; Etiqueta15 BCF STATUS,IRP BCF STATUS,RP1 BCF STATUS,RP0 CLRWDT Return Etiqueta1: call Etiqueta2 ENDM